﻿using FlexFlow.Model;
using System;
using System.Collections.Generic;
using System.Web;
namespace FlexFlow.Base.Interface
{
    public interface IOnlineUserPool : ICollection<OnlineUserInfoHolder>
    {        
        /// <summary>
        /// 从指定HttpRequest取得已登录的用户信息
        /// </summary>
        /// <param name="req">
        /// 用来获取信息的HttpRequest
        /// </param>
        /// <returns>
        /// 取得的用户信息，如果用户未登录或不存在，则返回null
        /// </returns>
        LoginedUserInfo GetLoginedUserInfo(HttpRequestBase req);
        /// <summary>
        /// 根据指定的登录用户ID取得登录用户信息实例
        /// </summary>
        /// <param name="identity">
        /// 已登录的用户的登录信息ID
        /// </param>
        /// <returns>
        /// 取得的用户信息，如果用户信息不存在，则返回null
        /// </returns>
        LoginedUserInfo GetLoginedUserInfo(Guid identity);
        /// <summary>
        /// 通过userId取得已登录用户的信息
        /// </summary>
        /// <param name="userId">
        /// 用户Id
        /// </param>
        /// <returns>
        /// 取得的用户信息，如果用户未登录，则返回null
        /// </returns>
        LoginedUserInfo GetLoginedUserInfoByUid(Guid userId); 
    }
}
